package com.itheima.mp.domain.po;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


/*3.4.JSON类型处理器
数据库的user表中有一个info字段，是JSON类型：
格式像这样：
{"age": 20, "intro": "佛系青年", "gender": "male"}
而目前User实体类中却是String类型：
这样一来，我们要读取info中的属性时就非常不方便。如果要方便获取，info的类型最好是一个Map或者实体类。
而一旦我们把info改为对象类型，就需要在写入数据库时手动转为String，再读取数据库时，手动转换为对象，这会非常麻烦。
因此MybatisPlus提供了很多特殊类型字段的类型处理器，解决特殊字段类型与数据库类型转换的问题。例如处理JSON就可以使用JacksonTypeHandler处理器。
3.4.1.定义实体
首先，我们定义一个单独实体类UserInfo来与info字段的属性匹配：
3.4.2.使用类型处理器
接下来，将User类的info字段修改为UserInfo类型，并声明类型处理器：
测试可以发现，所有数据都正确封装到UserInfo当中了：
同时，为了让页面返回的结果也以对象格式返回，我们要修改UserVO中的info字段：

*/



@Data
// Lombok注解，自动生成getter、setter、toString、equals、hashCode等常用方法，减少样板代码。
@NoArgsConstructor
// Lombok注解，自动生成一个无参数的构造函数。适用于需要无参构造函数的场景，如反序列化或框架要求。
@AllArgsConstructor(staticName = "of")
// Lombok注解，自动生成一个包含所有字段的构造函数。staticName = "of"表示生成一个静态工厂方法of()，用于创建对象实例。
public class UserInfo {

    private Integer age;
    private String intro;
    private String gender;



}
